package com.xiaomei.manager.service;

import java.util.List;
import java.util.Map;

import com.xiaomei.manager.model.User;
import com.xiaomei.manager.model.UserAndRecommandDto;
import com.xiaomei.manager.web.dto.CountDto;
import com.xiaomei.manager.web.dto.OrderAndUser;
import com.xiaomei.manager.web.dto.UserAndCompleteDto;
import com.xiaomei.manager.web.dto.UserAndDriverAuthDto;
import com.xiaomei.manager.web.dto.req.FemaleDto;
import com.xiaomei.manager.web.dto.req.UserCompleteDto;
import com.xiaomei.manager.web.dto.req.UserQueryDto;
import com.xiaomei.manager.web.page.Page;

public interface IUserService {
	boolean updateByPrimaryKeySelective(User user);
	List<OrderAndUser> selectInviteUserByOrderCode(String mobile);
	
	List<OrderAndUser> selectAll();
	
	List<UserAndDriverAuthDto> getselectList(UserQueryDto dto,Page<UserAndDriverAuthDto> page );
	
	Object selectByPrimaryKey(Integer id);

	Object selectByUserCode(String userCode);
	
	/**
	 * 每日女乘客注册量
	 * @param page
	 * @return
	 */
	List<FemaleDto> getFemale(Page<FemaleDto> page);
	
	/**
	 * 返回所有用户成交订单数
	 * @param page
	 * @return
	 */
	List<UserCompleteDto> getUserComplete(UserAndCompleteDto dto ,Page<UserCompleteDto> page);
	
	/**
	 * 获取虚拟用户
	 * @return
	 */
	List<User> selectFictitiousUser();
	/**
	 * 所有用户统计
	 * @return
	 */
	CountDto selectCount();
	/**
	 * 根据男女和时间返回新增用户
	 * @param map
	 * @return
	 */
	List<FemaleDto> selectFemaleCount(String startTime,String endTime,String sex);

	List<UserAndRecommandDto> getUserRecommandValue(UserQueryDto dto, Page<UserAndRecommandDto> page);

	boolean updateUserRecommend(String userCode, Integer value);
	
	boolean insertUser(User user);
}
